Non-overridable methods (private
or final
) that don’t access instance data can be static
to prevent any
misunderstanding about the contract of the method.
Noncompliant code example
class Utilities {
private static String magicWord = "magic";
private String getMagicWord() { // Noncompliant
return magicWord;
}
private void setMagicWord(String value) { // Noncompliant
magicWord = value;
}
}
Compliant solution
class Utilities {
private static String magicWord = "magic";
private static String getMagicWord() {
return magicWord;
}
private static void setMagicWord(String value) {
magicWord = value;
}
}
Exceptions
When java.io.Serializable
is implemented the following three methods are excluded by the rule:
-
private void writeObject(java.io.ObjectOutputStream out) throws IOException;
-
private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException;
-
private void readObjectNoData() throws ObjectStreamException;